import requests


class IhrmEmpApi:

    @classmethod
    def add_emp(cls, req_headers, req_data):
        return requests.post(url="http://192.168.174.132:8000/api/sys/user", headers=req_headers, json=req_data)

    @classmethod
    def query_emp(cls, req_headers, emp_id):
        return requests.get(url="http://192.168.174.132:8000/api/sys/user/" + emp_id, headers=req_headers)

    @classmethod
    def put_emp(cls, req_headers, emp_id, req_data):
        return requests.put(url="http://192.168.174.132:8000/api/sys/user/" + emp_id, headers=req_headers,
                            json=req_data)

    @classmethod
    def delete_emp(cls, req_headers, emp_id):
        return requests.delete(url="http://192.168.174.132:8000/api/sys/user/" + emp_id, headers=req_headers)


if __name__ == '__main__':
    # 注意，{"": ""} 中间是冒号，不要写成,逗号了，会报错for header in headers.items():AttributeError: 'set' object has no attribute 'items'
    # 也不要在后面多一个逗号,  会认为是元组，单个元素了，也会报错AttributeError: 'tuple' object has no attribute 'items'
    req_headers = {"Authorization": "562bf7cf-de6f-4dcb-bb28-f0e2d40071be"}
    # 添加员工：变量：req_headers头，req_data体
    req_data = {
        "username": "姓名",
        "mobile": "15951700011",
        "workNumber": "11"
    }

    add_resp = IhrmEmpApi.add_emp(req_headers, req_data)
    print("添加员工:", add_resp.json())

    # 查询员工：变量：req_headers头，emp_id路径参数，
    # 注意：只有添加成功才能获取到id,否则报错，下面代码不执行
    # 注意：emp_id拼接url(中最后要有/，否则拼接不完整，只传epm_id值)
    emp_id = add_resp.json().get('data').get('id')

    query_resp = IhrmEmpApi.query_emp(req_headers, emp_id)
    print("查询员工:", query_resp.json())

    # 修改员工：变量：req_headers头，req_data体，emp_id路径参数
    req_data = {
        "username": "姓名1"  # 只能修改姓名，mobile和workNumber不能修改
    }

    modify_resp = IhrmEmpApi.put_emp(req_headers, emp_id, req_data)
    print("修改员工:", modify_resp.json())

    # 删除员工：变量：req_headers头，emp_id路径参数
    del_resp = IhrmEmpApi.delete_emp(req_headers, emp_id)
    print("删除员工:", del_resp.json())


# 添加员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'departmentId': '1066239913642561536', 'id': '1872283145236160512'}}
# 查询员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'id': '1872283145236160512', 'mobile': '15951700006', 'username': '姓名', 'enableState': 1, 'departmentId': '1066239913642561536', 'timeOfEntry': None, 'formOfEmployment': None, 'workNumber': '11', 'departmentName': '人力资源部', 'roleIds': [], 'staffPhoto': None}}
# 修改员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'departmentName': '人力资源部', 'workNumber': '11', 'departmentId': '1066239913642561536', 'mobile': '15951700006', 'id': '1872283145236160512', 'username': '姓名1'}}
# 删除员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': None}